package com.mu.design;

/**
 * @Classname ICalcuationArea
 * @Description 面积计算接口。遵循了开闭原则
 * 在面向对象编程领域中， 开闭原则 规定“ 软件中的对象（类，模块，函数等等）应该对于扩展是开放的，但是对于修改是封闭的 ”
 * @Date 2023/2/15 13:36
 * @Created by JiangMuyun
 */
public interface ICalcuationArea {

    /**
     * Description 计算面积，长方形
     * @date 2023/2/15 13:50
     * @user JiangMuyun
     * @param x 长
     * @param y 宽
     * @return double 面积
     **/
    double rectangle(double x, double y);

    /**
     * Description 计算面积，三角形
     * @date 2023/2/15 13:50
     * @user JiangMuyun
     * @param x 边长
     * @param y 边长
     * @param z 边长
     * @return double 面积
     * 海伦公式:S=√￣[p(p-a) (p-b )( p-c)]其中:p=(a+b+c)/2
     **/
    double triangle(double x, double y, double z);

    /**
     * Description TODO
     * @date 2023/2/15 13:54
     * @user JiangMuyun
     * @param r 半径
     * @return double 面积
     * 面积公式 S=πr²
     **/
    double circular(double r);
}
